home *** CD-ROM | disk | FTP | other *** search
- // Copyright (C) 1997-2002 Alias|Wavefront,
- // a division of Silicon Graphics Limited.
- //
- // The information in this file is provided for the exclusive use of the
- // licensees of Alias|Wavefront. Such users have the right to use, modify,
- // and incorporate this code into other products for purposes authorized
- // by the Alias|Wavefront license agreement, without fee.
- //
- // ALIAS|WAVEFRONT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- // INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- // EVENT SHALL ALIAS|WAVEFRONT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- // CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- // PERFORMANCE OF THIS SOFTWARE.
- //
- //
- // Alias|Wavefront Script File
- //
- // Creation Date: May 9, 1997
- // Author: sw
- //
- // Procedure Name:
- // AEnonExtendedLightShapeDepthMapAttr
- //
- // Description:
- // Creates attribute editor controls in split files
- // for the nonExtendedLightShapeNode
- //
- // Input Value:
- // nodeName
- //
- // Output Value:
- // None
- //
- //
-
-
- // Procedure Name:
- // showReuseDmap
- //
- global proc showReuseDmap( string $readDmapAttr, string $reuseDmapAttr )
- {
-
- setUITemplate -pushTemplate attributeEditorTemplate;
-
- optionMenuGrp -label "Disk Based Dmaps" -cw 2 230 saveToDiskMenu;
-
- menuItem -l "Off" "doNotDmap";
- menuItem -l "Overwrite Existing Dmap(s)" "writeDmap";
- menuItem -l "Reuse Existing Dmap(s)" "reuseDmap";
-
- showReuseDmapChange( $readDmapAttr, $reuseDmapAttr );
-
- setUITemplate -popTemplate;
- }
-
-
- global proc updateReuseDmapMenu( string $nodeName, string $layout )
- //
- // this is called by a scriptJob whenever the attributes change value
- {
- string $value1 = `getAttr ($nodeName+".reuseDmap")`;
- string $value2 = `getAttr ($nodeName+".writeDmap")`;
-
- setParent $layout;
-
- if ( $value1 == 1 ) {
- optionMenuGrp -e -select 3 saveToDiskMenu;
- }
- else if ( $value2 == 1 ) {
- optionMenuGrp -e -select 2 saveToDiskMenu;
- }
- else {
- optionMenuGrp -e -select 1 saveToDiskMenu;
- }
- }
-
-
- global proc updateFromDmapMenu( string $nodeName, string $layout )
- //
- // This is called to insure the display of attributes is correct
- // whenever dimming events might occur.
- {
- setParent $layout;
- int $val = `optionMenuGrp -q -sl saveToDiskMenu`;
- int $value = `getAttr ($nodeName+".useDepthMapShadows")`;
-
- int $set;
- if ($value) {
- $set = false;
- } else {
- $set = true;
- }
- if ( $val == 3 ){
- editorTemplate -dimControl $nodeName dmapUseMacro $set;
- editorTemplate -dimControl $nodeName dmapName $set;
- editorTemplate -dimControl $nodeName dmapSceneName $set;
- editorTemplate -dimControl $nodeName dmapLightName $set;
- editorTemplate -dimControl $nodeName dmapFrameExt $set;
- } else if ( $val == 2){
- editorTemplate -dimControl $nodeName dmapUseMacro true;
- editorTemplate -dimControl $nodeName dmapName $set;
- editorTemplate -dimControl $nodeName dmapSceneName $set;
- editorTemplate -dimControl $nodeName dmapLightName $set;
- editorTemplate -dimControl $nodeName dmapFrameExt $set;
- } else {
- editorTemplate -dimControl $nodeName dmapUseMacro true;
- editorTemplate -dimControl $nodeName dmapName true;
- editorTemplate -dimControl $nodeName dmapSceneName true;
- editorTemplate -dimControl $nodeName dmapLightName true;
- editorTemplate -dimControl $nodeName dmapFrameExt true;
- }
- }
-
- global proc setDmapAttrs( string $nodeName, string $layout )
- // This is called whenever the user changes the menu
- {
- int $val = `optionMenuGrp -q -sl saveToDiskMenu`;
- if ( $val == 3 ){
- setAttr ($nodeName+".reuseDmap") 1;
- setAttr ($nodeName+".writeDmap") 0;
- } else if ( $val == 2){
- setAttr ($nodeName+".reuseDmap") 0;
- setAttr ($nodeName+".writeDmap") 1;
- } else {
- setAttr ($nodeName+".reuseDmap") 0;
- setAttr ($nodeName+".writeDmap") 0;
- }
- updateFromDmapMenu( $nodeName, $layout );
- }
-
- global proc showReuseDmapChange( string $readDmapAttr, string $reuseDmapAttr )
- {
- string $buffer[];
- tokenize($readDmapAttr,".",$buffer);
- if ( size($buffer)==0 ) return;
-
- string $layout = `setParent -q`;
-
- // create the change command for the menu
- //
- optionMenuGrp -e -cc ("setDmapAttrs " + $buffer[0] + " " + $layout ) saveToDiskMenu;
-
- // create the script job to update the menu if the attribute is changed elsewhere.
- // Each one is parented to a different control so that they can be replace properly
- // when needed.
- //
- scriptJob -rp -p saveToDiskMenu
- -ac $readDmapAttr ("updateReuseDmapMenu "+$buffer[0]+" "+ $layout );
-
- scriptJob -rp -p $layout
- -ac $reuseDmapAttr ("updateReuseDmapMenu "+$buffer[0]+" "+ $layout );
-
- updateFromDmapMenu($buffer[0], $layout);
- updateReuseDmapMenu($buffer[0], $layout);
-
- }
-
- // Procedure Name:
- // checkUseDepthMapShadows
- //
-
- global proc checkUseDepthMapShadows ( string $nodeName )
- {
- string $nodeAttr = $nodeName + ".useDepthMapShadows";
- int $value = `getAttr $nodeAttr`;
- string $layout = `setParent -q`;
-
- if ( $value == 1 ) {
- editorTemplate -dimControl $nodeName "dmapFilterSize" false;
- editorTemplate -dimControl $nodeName "dmapResolution" false;
- editorTemplate -dimControl $nodeName "dmapBias" false;
- editorTemplate -dimControl $nodeName "useDmapAutoFocus" false;
- if ( `getAttr ($nodeName + ".useDmapAutoFocus")` == 0 ) {
- editorTemplate -dimControl $nodeName "dmapFocus" false;
- editorTemplate -dimControl $nodeName "dmapWidthFocus" false;
- editorTemplate -dimControl $nodeName "useLightPosition" false;
- }
- if ( `attrFieldSliderGrp -exists volumeShadowSamplesField` ) {
- attrFieldSliderGrp -e -en true volumeShadowSamplesField;
- }
- editorTemplate -dimControl $nodeName "fogShadowIntensity" false;
- editorTemplate -dimControl $nodeName "useMidDistDmap" false;
- editorTemplate -dimControl $nodeName "useX+Dmap" false;
- editorTemplate -dimControl $nodeName "useX-Dmap" false;
- editorTemplate -dimControl $nodeName "useY+Dmap" false;
- editorTemplate -dimControl $nodeName "useY-Dmap" false;
- editorTemplate -dimControl $nodeName "useZ+Dmap" false;
- editorTemplate -dimControl $nodeName "useZ-Dmap" false;
- editorTemplate -dimControl $nodeName "useOnlySingleDmap" false;
-
- if (`optionMenuGrp -exists saveToDiskMenu`) {
- editorTemplate -dimControl $nodeName writeDmap false;
- editorTemplate -dimControl $nodeName reuseDmap false;
- updateFromDmapMenu($nodeName, $layout);
- updateReuseDmapMenu($nodeName, $layout);
- }
- } else {
- editorTemplate -dimControl $nodeName "dmapFilterSize" true;
- editorTemplate -dimControl $nodeName "dmapResolution" true;
- editorTemplate -dimControl $nodeName "dmapBias" true;
- editorTemplate -dimControl $nodeName "useDmapAutoFocus" true;
- editorTemplate -dimControl $nodeName "dmapFocus" true;
- editorTemplate -dimControl $nodeName "dmapWidthFocus" true;
- editorTemplate -dimControl $nodeName "useLightPosition" true;
- if ( `attrFieldSliderGrp -exists volumeShadowSamplesField` ) {
- attrFieldSliderGrp -e -en false volumeShadowSamplesField;
- }
- editorTemplate -dimControl $nodeName "fogShadowIntensity" true;
- editorTemplate -dimControl $nodeName "useMidDistDmap" true;
- editorTemplate -dimControl $nodeName "useX+Dmap" true;
- editorTemplate -dimControl $nodeName "useX-Dmap" true;
- editorTemplate -dimControl $nodeName "useY+Dmap" true;
- editorTemplate -dimControl $nodeName "useY-Dmap" true;
- editorTemplate -dimControl $nodeName "useZ+Dmap" true;
- editorTemplate -dimControl $nodeName "useZ-Dmap" true;
- editorTemplate -dimControl $nodeName "useOnlySingleDmap" true;
- editorTemplate -dimControl $nodeName dmapName true;
- editorTemplate -dimControl $nodeName dmapSceneName true;
- editorTemplate -dimControl $nodeName dmapLightName true;
- editorTemplate -dimControl $nodeName dmapFrameExt true;
-
- if (`optionMenuGrp -exists saveToDiskMenu`) {
- editorTemplate -dimControl $nodeName writeDmap true;
- editorTemplate -dimControl $nodeName reuseDmap true;
- updateFromDmapMenu($nodeName, $layout);
- updateReuseDmapMenu($nodeName, $layout);
- }
- }
-
- checkuseDepthMapreadDepthMap $nodeName;
- checkNonExtendedLightShapeNodeUseOnlySingleDepthMap $nodeName;
- }
-
-
-
- //
- // Procedure Name:
- // checkuseDepthMapreadDepthMap
- //
-
- global proc checkuseDepthMapreadDepthMap ( string $nodeName )
- {
- string $nodeAttr1 = $nodeName + ".useDepthMapShadows";
- int $value1 = `getAttr $nodeAttr1`;
-
- string $nodeAttr2 = $nodeName + ".reuseDmap";
- int $value2 = `getAttr $nodeAttr2`;
-
- if ( ($value1 == 1) && ($value2 == 1) ) {
- editorTemplate -dimControl $nodeName "dmapUseMacro" false;
- } else {
- editorTemplate -dimControl $nodeName "dmapUseMacro" true;
- }
- }
-
- global proc checkNonExtendedLightShapeNodeUseDepthMapAutoFocus (string $nodeName)
- {
- string $nodeAttr1 = $nodeName + ".useDmapAutoFocus";
- int $value1 = `getAttr $nodeAttr1`;
-
- if ($value1) {
- editorTemplate -dimControl $nodeName "dmapFocus" true;
- editorTemplate -dimControl $nodeName "dmapWidthFocus" true;
- editorTemplate -dimControl $nodeName "useLightPosition" true;
- } else {
- editorTemplate -dimControl $nodeName "dmapFocus" false;
- editorTemplate -dimControl $nodeName "dmapWidthFocus" false;
- editorTemplate -dimControl $nodeName "useLightPosition" false;
- }
- }
-
- global proc checkNonExtendedLightShapeNodeUseDepthMapAutoClipping (string $nodeName)
- {
- string $nodeAttr1 = $nodeName + ".useDmapAutoClipping";
- int $value1 = `getAttr $nodeAttr1`;
-
- if ($value1) {
- editorTemplate -dimControl $nodeName "dmapNearClipPlane" true;
- editorTemplate -dimControl $nodeName "dmapFarClipPlane" true;
- } else {
- editorTemplate -dimControl $nodeName "dmapNearClipPlane" false;
- editorTemplate -dimControl $nodeName "dmapFarClipPlane" false;
- }
- }
-
- global proc checkNonExtendedLightShapeNodeUseOnlySingleDepthMap (string $nodeName)
- {
- if (`attributeQuery -exists -node $nodeName "useOnlySingleDmap"`){
- string $nodeAttr1 = $nodeName + ".useDepthMapShadows";
- int $value1 = `getAttr $nodeAttr1`;
-
- int $value2;
- if (`objectType $nodeName` == "spotLight") {
- string $nodeAttr2 = $nodeName + ".useOnlySingleDmap";
- $value2 = `getAttr $nodeAttr2`;
- } else if (`objectType $nodeName` == "pointLight") {
- $value2 = 0;
- }
-
- if ( ($value1 == 1) && ($value2 == 0) ) {
- editorTemplate -dimControl $nodeName "useX+Dmap" false;
- editorTemplate -dimControl $nodeName "useX-Dmap" false;
- editorTemplate -dimControl $nodeName "useY+Dmap" false;
- editorTemplate -dimControl $nodeName "useY-Dmap" false;
- editorTemplate -dimControl $nodeName "useZ+Dmap" false;
- editorTemplate -dimControl $nodeName "useZ-Dmap" false;
- } else {
- editorTemplate -dimControl $nodeName "useX+Dmap" true;
- editorTemplate -dimControl $nodeName "useX-Dmap" true;
- editorTemplate -dimControl $nodeName "useY+Dmap" true;
- editorTemplate -dimControl $nodeName "useY-Dmap" true;
- editorTemplate -dimControl $nodeName "useZ+Dmap" true;
- editorTemplate -dimControl $nodeName "useZ-Dmap" true;
- }
- }
- }
-
- global proc AEvolumeShadowSamplesNew( string $attrName )
- {
- setUITemplate -pst attributeEditorTemplate;
- attrFieldSliderGrp -attribute $attrName -l "Fog Shadow Samples"
- volumeShadowSamplesField;
- setUITemplate -ppt;
- }
-
- global proc AEvolumeShadowSamplesReplace( string $attrName )
- {
- attrFieldSliderGrp -e -attribute $attrName -l "Fog Shadow Samples"
- volumeShadowSamplesField;
- }
-
- //
- // Procedure Name:
- // AEnonExtendedLightShapeDepthMapAttr
- //
-
- global proc AEnonExtendedLightShapeDepthMapAttr ( string $nodeName )
- {
- if ( `objectType $nodeName` == "pointLight"){
- if (`attributeQuery -exists -n $nodeName "useOnlySingleDmap"`)
- setAttr ($nodeName + ".useOnlySingleDmap") 0;
- }
-
- editorTemplate -beginLayout "Depth Map Shadow Attributes" -collapse 0;
- editorTemplate -addControl "useDepthMapShadows" "checkUseDepthMapShadows";
- editorTemplate -addControl "dmapResolution";
- editorTemplate -beginNoOptimize;
- editorTemplate -addControl "useMidDistDmap";
-
- // Focus
- if (`objectType $nodeName` == "spotLight" ||
- `objectType $nodeName` == "pointLight") {
- editorTemplate -addControl "useDmapAutoFocus"
- "checkNonExtendedLightShapeNodeUseDepthMapAutoFocus";
- editorTemplate -addControl "dmapFocus";
- editorTemplate -suppress "dmapWidthFocus";
- } else {
- editorTemplate -suppress "useDmapAutoFocus";
- editorTemplate -suppress "dmapFocus";
- editorTemplate -suppress "dmapWidthFocus";
- }
-
- // Width
-
- if ( `objectType $nodeName` == "directionalLight" ) {
- editorTemplate -addControl "useDmapAutoFocus"
- "checkNonExtendedLightShapeNodeUseDepthMapAutoFocus";
- editorTemplate -addControl "dmapWidthFocus";
- editorTemplate -addControl "useLightPosition";
- editorTemplate -suppress "dmapFocus";
- } else {
- editorTemplate -suppress "useDmapAutoFocus";
- editorTemplate -suppress "dmapWidthFocus";
- editorTemplate -suppress "dmapFocus";
- editorTemplate -suppress "useLightPosition";
- }
-
- editorTemplate -endNoOptimize;
- editorTemplate -addSeparator;
-
- editorTemplate -addControl "dmapFilterSize";
- editorTemplate -suppress "useDmapAutoBias";
- editorTemplate -addControl "dmapBias";
- editorTemplate -addControl "fogShadowIntensity";
- editorTemplate -callCustom "AEvolumeShadowSamplesNew"
- "AEvolumeShadowSamplesReplace" "volumeShadowSamples";
-
-
- editorTemplate -suppress "useDmapAutoClipping";
- editorTemplate -suppress "dmapNearClipPlane";
- editorTemplate -suppress "dmapFarClipPlane";
-
- // IO
-
- editorTemplate -addSeparator;
-
- editorTemplate -callCustom showReuseDmap showReuseDmapChange writeDmap reuseDmap;
- // editorTemplate -beginNoOptimize;
- // editorTemplate -addControl "readDmap" "checkuseDepthMapreadDepthMap";
- // editorTemplate -label "Create New or Reuse Existing Dmap(s)" -addControl "reuseDmap" "checkuseDepthMapreadDepthMap";
- // editorTemplate -label "Update Existing Dmap(s) From Render" -addControl "writeDmap";
- // editorTemplate -endNoOptimize;
-
- editorTemplate -addControl "dmapName";
- editorTemplate -beginNoOptimize;
- editorTemplate -addControl "dmapSceneName";
- editorTemplate -addControl "dmapLightName";
- editorTemplate -endNoOptimize;
- editorTemplate -addControl "dmapFrameExt";
- editorTemplate -addControl "dmapUseMacro";
- editorTemplate -suppress "lastWrittenDmapAnimExtName";
-
- if (`objectType $nodeName` == "spotLight" ||
- `objectType $nodeName` == "pointLight") {
- editorTemplate -addSeparator;
- }
-
- // OnlySingleDepthMap
-
- if (`objectType $nodeName` == "spotLight") {
- editorTemplate -addControl "useOnlySingleDmap"
- "checkNonExtendedLightShapeNodeUseOnlySingleDepthMap";
- editorTemplate -interruptOptimize;
- } else {
- editorTemplate -suppress "useOnlySingleDmap";
- }
-
- // SixMaps
-
- if (`objectType $nodeName` == "spotLight" ||
- `objectType $nodeName` == "pointLight") {
-
- editorTemplate -beginNoOptimize;
- editorTemplate -addControl "useX+Dmap";
- editorTemplate -addControl "useX-Dmap";
- editorTemplate -addControl "useY+Dmap";
- editorTemplate -addControl "useY-Dmap";
- editorTemplate -addControl "useZ+Dmap";
- editorTemplate -addControl "useZ-Dmap";
- editorTemplate -endNoOptimize;
- } else {
- editorTemplate -suppress "useX+Dmap";
- editorTemplate -suppress "useX-Dmap";
- editorTemplate -suppress "useY+Dmap";
- editorTemplate -suppress "useY-Dmap";
- editorTemplate -suppress "useZ+Dmap";
- editorTemplate -suppress "useZ-Dmap";
- }
-
- editorTemplate -suppress "volumeShadowSamples";
- editorTemplate -suppress "reuseDmap";
- editorTemplate -suppress "writeDmap";
-
- editorTemplate -endLayout;
- }
-